package org.android.brasil.projetos.oktoberfest2011.view;

import java.util.ArrayList;
import java.util.List;

import org.android.brasil.projetos.oktoberfest2011.R;
import org.android.brasil.projetos.oktoberfest2011.negocio.model.Apresentacao;
import org.android.brasil.projetos.oktoberfest2011.persistencia.ApresentacaoDAO;
import org.android.brasil.projetos.oktoberfest2011.utils.AnalyticsUtils;
import org.android.brasil.projetos.oktoberfest2011.utils.ControleDeBackground;
import org.android.brasil.projetos.oktoberfest2011.view.controller.HomeController;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RelativeLayout;

public class BuscarResultados extends ListActivity {
	private AnalyticsUtils mGa;
	private ListView lv;
	private String texto;
	private String categoria;
	private String setor;
	private int dia;

	private OnClickListener casaListener = new OnClickListener() {

		public void onClick(View v) {
			Intent i = new Intent(getApplicationContext(), HomeController.class);
			i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			startActivity(i);
			mGa.buttonTrackEvent("Casa");
		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		this.mGa = AnalyticsUtils.getInstance(this);

		setContentView(R.layout.buscar_resultados_view);
		Bundle extras = getIntent().getExtras();
		texto = extras.getString("TEXTO");
		categoria = extras.getString("CATEGORIA");
		setor = extras.getString("LOCAL");
		dia = extras.getInt("DATA");

		bindScreenFields();
		populateFields();

		this.mGa.trackScreen(getString(R.string.buscar) + " Resultados - view");
	}

	private void populateFields() {
		List<Apresentacao> aprs = null;
		List<String> keys = new ArrayList<String>();
		List<String> values = new ArrayList<String>();
		if(!categoria.equals("")){
			keys.add(ApresentacaoDAO.COLUNA_CATEGORIA);
			values.add(categoria);
		}
		if(!setor.equals("")){
			keys.add(ApresentacaoDAO.COLUNA_SETOR);
			values.add(setor);
		}
		if(dia != 0){
			keys.add(ApresentacaoDAO.COLUNA_DIA);
			values.add(String.valueOf(dia));
		}
		String[] chaves = new String[keys.size()];
		String[] valores = new String[values.size()];
		
		keys.toArray(chaves);
		values.toArray(valores);
		
		ApresentacaoDAO.open(getApplicationContext());
		if(!texto.equals("")){
			aprs = ApresentacaoDAO.consultar(texto, chaves, valores);	
		}else{
			aprs = ApresentacaoDAO.consultar(chaves, valores);
		}
		
		ApresentacaoDAO.close();

		lv.setAdapter(new ResultadosAdapter(getApplicationContext(), aprs));

	}

	private void bindScreenFields() {
		lv = getListView();
		ImageView casa = (ImageView) findViewById(R.id.casa);
		casa.setOnClickListener(casaListener);

		RelativeLayout rl = (RelativeLayout) findViewById(R.idBuscarResultados.relativeLayout01);
		ControleDeBackground.SetBarraSuperiorBackGround(
				getApplicationContext(), rl);

	}

}
